
This folder contains an I/O driver designed to allow automated testing under
the control of an external debugger.

The basic concept is that specific functions are provided at known points in
the program flow to allow the debugger to halt the operation using breakpoints.
Once halted, known memory buffers can be either read or written in order to
inject samples into the audio path or to extract processed samples which can
then be compared against golden samples.  

The provided hooks are:

    1.  gdbRead - which is called when the application needs more samples to
        process
    2.  gdbReadComplete - which is invoked when the read has been processed
        and allows additional setup to be performed if needed.
    3.  gdbWrite - which is called when the application is finished handling
        a block of samples and has results available
    4.  gdbWriteComplete - which is invoked after the gdbWrite has finished
        again, allowing for additional setup to be performed.
        
In addition to the functions which can be used to halt the program at known
locations, two sets of buffers are provided to allow the injection and
extraction of data samples:

    1.  gdbInput - which is a buffer into which samples can be placed for
        processing. When this is used, the gdbInputSize variable should also
        be set to indicate how much data can be procesed.
    2.  gdbOutput - which provides a buffer from which processed samples can
        be read. the extent of the used data can be derived from the
        gdbOutputSize variable which will be set by the application.
        
        
The AudioIO project provides sample Python scripts which demonstrate how this
functionality can be exploited to provide a regression test framework.